Configure the Service Parameters (netTcpBinding Message Level)

Use this procedure to configure the service parameters in order to use the netTcpBinding Message level authentication.

To configure the service parameters in order to use the netTcpBinding Message level authentication:

  1. Click Start > Windows Administrative Tools > Services.
  2. In the Services window, locate the Ideablade Persistence Server service, right-click it, and click Stop.
  3. Navigate to the Cobra installation directory and open the Server folder (for example, C:\Program Files (x86)\Deltek\Cobra\Server).
  4. Locate the ServerService.exe.config file and open it using a text editor (such as Notepad).
  5. Update the endpoints to use the security protocol required to enable Windows authentication.
    1. Change the address protocol value for each endpoint from http to net.tcp.
    2. Change the binding tag from customBinding to netTcpBinding.
    3. Change the binding configuration tag from compressedBinaryBinding to WindowsClientOverTcp.
    4. Uncomment the netTcpBinding section.
    5. Change the netTcpBinding security mode from Transport to Message.
    6. Uncomment the identity tags for both endpoints.
    Before

    <service name="PersistenceService" behaviorConfiguration="Behavior1">

    <endpoint address="http://<COBRA SERVER NAME>:9009/PersistenceService" binding="customBinding" bindingConfiguration="compressedBinaryBinding" contract="IdeaBlade.Persistence.Wcf.IWcfPersistenceService">

    <!--<identity><servicePrincipalName value="Local Network"></servicePrincipalName></identity>-->

    </endpoint>

    </service>

    <service name="IdeaBlade.Persistence.Wcf.WcfPersistenceServer" behaviorConfiguration="Behavior1">

    <endpoint address="http://<COBRA SERVER NAME>:9009/PersistenceServer" binding="customBinding" bindingConfiguration="compressedBinaryBinding" contract="IdeaBlade.Persistence.Wcf.IWcfPersistenceServer">

    <!--<identity><servicePrincipalName value="Local Network"></servicePrincipalName></identity>-->

    </endpoint>

    </service>

    <!--<netTcpBinding>

    <binding name="WindowsClientOverTcp"

    closeTimeout="10:01:00"

    openTimeout="10:01:00"

    receiveTimeout="10:10:00"

    sendTimeout="10:01:00"

    transactionFlow="false"

    transferMode="Buffered"

    transactionProtocol="OleTransactions"

    hostNameComparisonMode="StrongWildcard"

    listenBacklog="10"

    maxBufferPoolSize="2147483647"

    maxBufferSize="2147483647"

    maxConnections="10"

    maxReceivedMessageSize="2147483647">

    <readerQuotas maxDepth="32"

    maxStringContentLength="2147483647"

    maxArrayLength="2147483647

    maxBytesPerRead="2147483647"

    maxNameTableCharCount="2147483647" />

    <reliableSession ordered="true"

    inactivityTimeout="10:10:00"

    enabled="false" />

    <security mode="Tranport">

    <transport clientCredentialType="Windows" />

    </security>

    </binding>

    </netTcpBinding>-->

    After

    <service name="PersistenceService" behaviorConfiguration="Behavior1">

    <endpoint address="net.tcp://<COBRA SERVER NAME>:9009/PersistenceService" binding="netTcpBinding" bindingConfiguration=WindowsClientOverTcp" contract="IdeaBlade.Persistence.Wcf.IWcfPersistenceService">

    <identity><servicePrincipalName value="Local Network"></servicePrincipalName></identity>

    </endpoint>

    </service>

    <service name="IdeaBlade.Persistence.Wcf.WcfPersistenceServer" behaviorConfiguration="Behavior1">

    <endpoint address="net.tcp://<COBRA SERVER NAME>:9009/PersistenceServer" binding="netTcpBinding" bindingConfiguration="WindowsClientOverTcp" contract="IdeaBlade.Persistence.Wcf.IWcfPersistenceServer">

    <identity><servicePrincipalName value="Local Network"></servicePrincipalName></identity>

    </endpoint>

    </service>

    <netTcpBinding>

    <binding name="WindowsClientOverTcp"

    closeTimeout="10:01:00"

    openTimeout="10:01:00"

    receiveTimeout="10:10:00"

    sendTimeout="10:01:00"

    transactionFlow="false"

    transferMode="Buffered"

    transactionProtocol="OleTransactions"

    hostNameComparisonMode="StrongWildcard"

    listenBacklog="10"

    maxBufferPoolSize="2147483647"

    maxBufferSize="2147483647"

    maxConnections="10"

    maxReceivedMessageSize="2147483647">

    <readerQuotas maxDepth="32"

    maxStringContentLength="2147483647"

    maxArrayLength="2147483647"

    maxBytesPerRead="2147483647"

    maxNameTableCharCount="2147483647" />

    <reliableSession ordered="true"

    inactivityTimeout="10:10:00"

    enabled="false" />

    <security mode="Message">

    <transport clientCredentialType="Windows" />

    </security>

    </binding>

    </netTcpBinding>

  6. Configure application settings to enable Windows Authentication.
    1. Change the PerformDomainAuthentication setting value from false to true.
    2. Add a list of domain groups to the Role setting to only allow members of those groups to access Cobra.
    Before

    <appSettings>

    <add key="ConcurrentProcesses" value="8" />

    <add key="PerformDomainAuthentication" value="false" />

    <add key="Roles" value="" />

    </appSettings>

    After

    <appSettings>

    <add key="ConcurrentProcesses" value="8" />

    <add key="PerformDomainAuthentication" value="true" />

    <add key="Roles" value="BUILTIN\Administrators" />

    </appSettings>

  7. Start the Ideablade Persistence Server service.